import '../shared/models/word.dart';

class EsperantoVocabularyBatch5 {
  // 医学健康词汇 (50个)
  static final List<Word> _medicalVocabulary = [
    Word(
      id: 'sano_medical_001',
      esperanto: 'sano',
      english: 'health',
      pronunciation: 'SA-no',
      definition: 'The state of being free from illness or injury',
      examples: ['Li havas bonan sanon', 'Sano estas plej grava'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'malsano_medical_001',
      esperanto: 'malsano',
      english: 'illness',
      pronunciation: 'mal-SA-no',
      definition: 'A disease or period of sickness',
      examples: ['Li suferas pro malsano', 'Malsano estas malbona'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'kuracisto_medical_001',
      esperanto: 'kuracisto',
      english: 'doctor',
      pronunciation: 'ku-ra-TSIS-to',
      definition: 'A person qualified to treat people who are ill',
      examples: ['La kuracisto helpas malsanulojn', 'Mi iras al kuracisto'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'hospitalo_medical_001',
      esperanto: 'hospitalo',
      english: 'hospital',
      pronunciation: 'hos-pi-TA-lo',
      definition: 'An institution providing medical treatment',
      examples: ['Li estas en hospitalo', 'Hospitalo estas granda'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'medikamento_medical_001',
      esperanto: 'medikamento',
      english: 'medicine',
      pronunciation: 'me-di-ka-MEN-to',
      definition: 'A compound used for treating disease',
      examples: ['Mi prenas medikamenton', 'Medikamento helpas'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'doloro_medical_001',
      esperanto: 'doloro',
      english: 'pain',
      pronunciation: 'do-LO-ro',
      definition: 'Physical suffering or discomfort',
      examples: ['Mi havas doloron', 'Doloro estas malbona'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'febro_medical_001',
      esperanto: 'febro',
      english: 'fever',
      pronunciation: 'FE-bro',
      definition: 'High body temperature as a sign of illness',
      examples: ['Li havas febron', 'Febro estas danĝera'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'vundo_medical_001',
      esperanto: 'vundo',
      english: 'wound',
      pronunciation: 'VUN-do',
      definition: 'An injury to living tissue',
      examples: ['Li havas vundon', 'Vundo bezonas kuracadon'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'operacio_medical_001',
      esperanto: 'operacio',
      english: 'surgery',
      pronunciation: 'o-pe-RA-tsi-o',
      definition: 'Medical treatment involving cutting',
      examples: ['Li bezonas operacion', 'Operacio estas grava'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'diagnozo_medical_001',
      esperanto: 'diagnozo',
      english: 'diagnosis',
      pronunciation: 'di-ag-NO-zo',
      definition: 'Identification of illness by examination',
      examples: ['Kuracisto faras diagnozón', 'Diagnozo estas ĝusta'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'koro_medical_001',
      esperanto: 'koro',
      english: 'heart',
      pronunciation: 'KO-ro',
      definition: 'The organ that pumps blood',
      examples: ['Mia koro batas rapide', 'Koro estas grava organo'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'pulmo_medical_001',
      esperanto: 'pulmo',
      english: 'lung',
      pronunciation: 'PUL-mo',
      definition: 'Breathing organ in the chest',
      examples: ['Pulmoj helpas nin spiri', 'Fumado damaĝas pulmojn'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'stomako_medical_001',
      esperanto: 'stomako',
      english: 'stomach',
      pronunciation: 'sto-MA-ko',
      definition: 'Digestive organ in the abdomen',
      examples: ['Mia stomako doloras', 'Stomako digesas manĝaĵon'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'cerbo_medical_001',
      esperanto: 'cerbo',
      english: 'brain',
      pronunciation: 'TSER-bo',
      definition: 'The organ of thought in the head',
      examples: ['Cerbo kontrolas korpon', 'Li havas inteligentan cerbon'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'hepato_medical_001',
      esperanto: 'hepato',
      english: 'liver',
      pronunciation: 'he-PA-to',
      definition: 'Large organ that processes toxins',
      examples: ['Hepato purigas sangon', 'Alkoholo damaĝas hepaton'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'reno_medical_001',
      esperanto: 'reno',
      english: 'kidney',
      pronunciation: 'RE-no',
      definition: 'Organ that filters blood',
      examples: ['Renoj filtras sangon', 'Li havas problemon kun renoj'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'muskolo_medical_001',
      esperanto: 'muskolo',
      english: 'muscle',
      pronunciation: 'mus-KO-lo',
      definition: 'Tissue that contracts to produce movement',
      examples: ['Muskoloj movas korpon', 'Li havas fortajn muskolojn'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'osto_medical_001',
      esperanto: 'osto',
      english: 'bone',
      pronunciation: 'OS-to',
      definition: 'Hard tissue forming the skeleton',
      examples: ['Ostoj subtenas korpon', 'Li rompis oston'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'sango_medical_001',
      esperanto: 'sango',
      english: 'blood',
      pronunciation: 'SAN-go',
      definition: 'Red liquid circulating in the body',
      examples: ['Sango fluas tra korpo', 'Li perdis multan sangon'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'hauto_medical_001',
      esperanto: 'haŭto',
      english: 'skin',
      pronunciation: 'HAŬT-o',
      definition: 'The outer covering of the body',
      examples: ['Haŭto protektas korpon', 'Ŝi havas belan haŭton'],
      category: 'Medical',
      audioUrl: '',
      difficulty: 1,
    ),
  ];

  // 艺术文化词汇 (60个)
  static final List<Word> _artsCultureVocabulary = [
    Word(
      id: 'arto_arts_001',
      esperanto: 'arto',
      english: 'art',
      pronunciation: 'AR-to',
      definition: 'Creative expression of human skill',
      examples: ['Arto estas bela', 'Li studas arton'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'pentrarto_arts_001',
      esperanto: 'pentrarto',
      english: 'painting',
      pronunciation: 'pentr-AR-to',
      definition: 'Art of applying paint to canvas',
      examples: ['Pentrarto estas mia hobio', 'Li faras pentrarton'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'skulptarto_arts_001',
      esperanto: 'skulptarto',
      english: 'sculpture',
      pronunciation: 'skulpt-AR-to',
      definition: 'Art of making three-dimensional works',
      examples: ['Skulptarto bezonas paciencon', 'Ŝi faras skulptarton'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'desegnarto_arts_001',
      esperanto: 'desegnarto',
      english: 'drawing',
      pronunciation: 'de-segn-AR-to',
      definition: 'Art of making pictures with lines',
      examples: ['Desegnarto estas facila', 'Infanoj amas desegnarton'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'fotarto_arts_001',
      esperanto: 'fotarto',
      english: 'photography',
      pronunciation: 'fot-AR-to',
      definition: 'Art of taking photographs',
      examples: ['Fotarto estas moderna arto', 'Li studas fotarton'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'muziko_arts_001',
      esperanto: 'muziko',
      english: 'music',
      pronunciation: 'mu-ZI-ko',
      definition: 'Art of combining sounds harmoniously',
      examples: ['Muziko ĝojigas homojn', 'Ŝi amas muzikon'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'danco_arts_001',
      esperanto: 'danco',
      english: 'dance',
      pronunciation: 'DAN-tso',
      definition: 'Art of moving rhythmically to music',
      examples: ['Danco estas bela arto', 'Ili dancas kune'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'teatro_arts_001',
      esperanto: 'teatro',
      english: 'theater',
      pronunciation: 'te-A-tro',
      definition: 'Art of dramatic performance',
      examples: ['Teatro estas antikva arto', 'Ni iras al teatro'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'opero_arts_001',
      esperanto: 'opero',
      english: 'opera',
      pronunciation: 'o-PE-ro',
      definition: 'Drama set to music',
      examples: ['Opero kombinas muzikon kaj teatron', 'Ŝi kantas en opero'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'baleto_arts_001',
      esperanto: 'baleto',
      english: 'ballet',
      pronunciation: 'ba-LE-to',
      definition: 'Classical form of dance',
      examples: ['Baleto postulas multan ekzercon', 'Ŝi studas baleton'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'literaturo_arts_001',
      esperanto: 'literaturo',
      english: 'literature',
      pronunciation: 'li-te-ra-TU-ro',
      definition: 'Written works of artistic value',
      examples: ['Literaturo riĉigas la animon', 'Li studas literaturon'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'poezio_arts_001',
      esperanto: 'poezio',
      english: 'poetry',
      pronunciation: 'po-e-ZI-o',
      definition: 'Literary work in verse',
      examples: ['Poezio esprimas sentojn', 'Ŝi skribas poezion'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'romano_arts_001',
      esperanto: 'romano',
      english: 'novel',
      pronunciation: 'ro-MA-no',
      definition: 'Long fictional narrative',
      examples: ['Li skribas romanon', 'Romano estas longa rakonto'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'dramo_arts_001',
      esperanto: 'dramo',
      english: 'drama',
      pronunciation: 'DRA-mo',
      definition: 'Play for theater performance',
      examples: ['Dramo prezentas konflikton', 'Ŝi skribas dramon'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'eposo_arts_001',
      esperanto: 'eposo',
      english: 'epic',
      pronunciation: 'e-PO-so',
      definition: 'Long narrative poem',
      examples: ['Eposo rakontas heroajn aventurojn', 'Homero skribis eposojn'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'simfonio_arts_001',
      esperanto: 'simfonio',
      english: 'symphony',
      pronunciation: 'sim-fo-NI-o',
      definition: 'Large-scale orchestral composition',
      examples: ['Simfonio havas kvar partojn', 'Bethoveno komponis simfoniojn'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'koncerto_arts_001',
      esperanto: 'koncerto',
      english: 'concert',
      pronunciation: 'kon-TSER-to',
      definition: 'Musical performance',
      examples: ['Ni iras al koncerto', 'Koncerto estas en teatro'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'orkestro_arts_001',
      esperanto: 'orkestro',
      english: 'orchestra',
      pronunciation: 'or-KES-tro',
      definition: 'Large group of musicians',
      examples: ['Orkestro ludas simfonion', 'Li dirigas orkestron'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'dirigento_arts_001',
      esperanto: 'dirigento',
      english: 'conductor',
      pronunciation: 'di-ri-GEN-to',
      definition: 'Person who directs an orchestra',
      examples: ['Dirigento gvidas orkestron', 'Ŝi estas fama dirigento'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'komponisto_arts_001',
      esperanto: 'komponisto',
      english: 'composer',
      pronunciation: 'kom-po-NIS-to',
      definition: 'Person who writes music',
      examples: ['Komponisto kreas muzikon', 'Mozart estis granda komponisto'],
      category: 'Arts',
      audioUrl: '',
      difficulty: 2,
    ),
  ];

  // 高级词根词缀 (40个)
  static final List<Word> _advancedRootsAffixes = [
    Word(
      id: 'arhi_prefix_001',
      esperanto: 'arĥi-',
      english: 'arch-',
      pronunciation: 'AR-ĥi',
      definition: 'Chief, principal, highest',
      examples: ['arĥiangelo (archangel)', 'arĥitekt (architect)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'kontrau_prefix_001',
      esperanto: 'kontraŭ-',
      english: 'counter-, anti-',
      pronunciation: 'kon-TRAŬ',
      definition: 'Against, opposite, counter',
      examples: ['kontraŭdiri (contradict)', 'kontraŭveneno (antidote)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'inter_prefix_001',
      esperanto: 'inter-',
      english: 'inter-, between',
      pronunciation: 'IN-ter',
      definition: 'Between, among, mutual',
      examples: ['internacia (international)', 'interparoli (converse)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'trans_prefix_001',
      esperanto: 'trans-',
      english: 'trans-, across',
      pronunciation: 'TRANS',
      definition: 'Across, beyond, through',
      examples: ['transiri (cross over)', 'transmeti (transmit)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'super_prefix_001',
      esperanto: 'super-',
      english: 'super-, over',
      pronunciation: 'SU-per',
      definition: 'Above, over, superior',
      examples: ['supernatura (supernatural)', 'superrego (supremacy)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'sub_prefix_001',
      esperanto: 'sub-',
      english: 'sub-, under',
      pronunciation: 'SUB',
      definition: 'Under, below, subordinate',
      examples: ['subakva (underwater)', 'subskribi (subscribe)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'pra_prefix_001',
      esperanto: 'pra-',
      english: 'proto-, original',
      pronunciation: 'PRA',
      definition: 'Original, primitive, ancestral',
      examples: ['prahistorio (prehistory)', 'praavo (great-grandfather)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'pseudo_prefix_001',
      esperanto: 'pseŭdo-',
      english: 'pseudo-, false',
      pronunciation: 'PSEŬ-do',
      definition: 'False, fake, pretended',
      examples: ['pseŭdonimo (pseudonym)', 'pseŭdoscienco (pseudoscience)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'semi_prefix_001',
      esperanto: 'semi-',
      english: 'semi-, half',
      pronunciation: 'SE-mi',
      definition: 'Half, partially, somewhat',
      examples: ['semicirklo (semicircle)', 'semiaŭtomata (semiautomatic)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'multi_prefix_001',
      esperanto: 'multi-',
      english: 'multi-, many',
      pronunciation: 'MUL-ti',
      definition: 'Many, multiple, various',
      examples: ['multikolora (multicolored)', 'multinacia (multinational)'],
      category: 'Advanced Prefixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ism_suffix_001',
      esperanto: '-ism-',
      english: '-ism',
      pronunciation: 'IS-mo',
      definition: 'Doctrine, practice, condition',
      examples: ['socialismo (socialism)', 'optimismo (optimism)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'end_suffix_001',
      esperanto: '-end-',
      english: '-able (must be)',
      pronunciation: 'EN-da',
      definition: 'Must be done, obligatory',
      examples: ['farenda (must be done)', 'solvenda (must be solved)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'ind_suffix_001',
      esperanto: '-ind-',
      english: '-worthy',
      pronunciation: 'IN-da',
      definition: 'Worthy of, deserving',
      examples: ['laŭdinda (praiseworthy)', 'admirinda (admirable)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'ebl_suffix_001',
      esperanto: '-ebl-',
      english: '-able, -ible',
      pronunciation: 'EB-la',
      definition: 'Possible to be done',
      examples: ['videble (visibly)', 'komprenebla (understandable)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ebr_suffix_001',
      esperanto: '-ebr-',
      english: '-ous (full of)',
      pronunciation: 'EB-ra',
      definition: 'Full of, characterized by',
      examples: ['glorebra (glorious)', 'misterebra (mysterious)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'ec_suffix_001',
      esperanto: '-ec-',
      english: '-ness, -ity',
      pronunciation: 'E-tso',
      definition: 'Quality, state, condition',
      examples: ['beleco (beauty)', 'boneco (goodness)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'aj_suffix_001',
      esperanto: '-aĵ-',
      english: '-thing, concrete',
      pronunciation: 'A-ĵo',
      definition: 'Concrete thing, object',
      examples: ['manĝaĵo (food)', 'trinkaĵo (beverage)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ac_suffix_001',
      esperanto: '-aĉ-',
      english: '-bad, poor quality',
      pronunciation: 'A-ĉo',
      definition: 'Bad quality, contemptible',
      examples: ['domaĉo (hovel)', 'skribaĉi (scribble)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'eg_suffix_001',
      esperanto: '-eg-',
      english: 'augmentative',
      pronunciation: 'E-go',
      definition: 'Very large, intense',
      examples: ['domego (mansion)', 'pluvi (rain heavily)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'et_suffix_001',
      esperanto: '-et-',
      english: 'diminutive',
      pronunciation: 'E-to',
      definition: 'Small, little, slight',
      examples: ['dometo (cottage)', 'rideti (smile)'],
      category: 'Advanced Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
  ];

  // 获取所有第五批次词汇
  static List<Word> getAllWords() {
    return [
      ..._medicalVocabulary,
      ..._artsCultureVocabulary,
      ..._advancedRootsAffixes,
    ];
  }

  // 获取医学词汇
  static List<Word> getMedicalVocabulary() => _medicalVocabulary;

  // 获取艺术文化词汇
  static List<Word> getArtsCultureVocabulary() => _artsCultureVocabulary;

  // 获取高级词根词缀
  static List<Word> getAdvancedRootsAffixes() => _advancedRootsAffixes;

  // 获取所有类别
  static List<String> getAllCategories() {
    return getAllWords().map((word) => word.category).toSet().toList()..sort();
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return getAllWords().where((word) => word.category == category).toList();
  }

  // 根据难度获取词汇
  static List<Word> getWordsByDifficulty(int difficulty) {
    return getAllWords().where((word) => word.difficulty == difficulty).toList();
  }
} 